package com.boss.thirteen.dao;

import com.boss.framework.dto.PaginationDTO;
import com.boss.salary.entity.AgencySalaryPayment;
import com.boss.sys.ca.user.dto.UserDTO;

import java.util.List;
import java.util.Map;

public interface IThirteenSalaryPaymentDao {

    /**
     * 查询分页数据
     * @param paginationDTO
     * @param queryParam
     * @return
     */
    List<AgencySalaryPayment> queryAgencySalaryPaymentPage(PaginationDTO paginationDTO, Map<String, Object> queryParam);

    /**
     * 查询数据条数
     * @param queryParam
     * @return
     */
    int queryAgencySalaryPaymentTotal(Map<String, Object> queryParam);

    /**
     * 根据 工资id 人员类型  年度  区划  单位id 删除
     * @param salaryId
     * @param personType
     * @param year
     * @param province
     * @param agencyId
     */
    void deleteHookUpData(String salaryId, String personType, String year, String province, String agencyId);

    /**
     * 批量清除区划已挂接指标
     * @param year
     * @param province
     */
    void deleteHookUpDataAll(String province);
    /**
     * 根据 工资id 人员类型  年度  区划  单位id 指标Id 删除
     * @param salaryId
     * @param personType
     * @param year
     * @param province
     * @param bgtId
     */
    void deleteHookUpDataByBgtId(String salaryId, String personType, String year, String province,List<String> bgtId);

    /**
     * 获取已挂接的数据
     * @param salaryId
     * @param personType
     * @param year
     * @param province
     * @param agencyId
     * @return
     */
    List<AgencySalaryPayment> getHookUpData(String salaryId, String personType, String year, String province, String agencyId);

    /**
     * 批量保存挂接数据
     * @param params
     */
    void saveHookUpData(List<Object[]> params);

    /**
     * 根据工资项id和人员类型获取挂接信息
     * @param salaryId
     * @param meritPayCode
     * @param agencyId
     * @return
     */
    List<AgencySalaryPayment> getBgtBySalaryPersonType(String salaryId, String meritPayCode, String agencyId);

    /**
     * 新增推送支付获取各单位指标挂接信息20210426
     * @param agencyIds
     * @param userDto
     * @return
     */
    List<AgencySalaryPayment> getBgtBySalaryPersonType(List<String> agencyIds, UserDTO userDto);

    List<AgencySalaryPayment> getPaymentLock(String agencyId);
}
